package com.itany.corejava.code05_数组;

import java.util.Arrays;

/**
 * @author 石小俊
 * @date 2024年01月12日 14:01
 */
public class Test12_不定长参数 {
    public static void main(String[] args) {
        // 不定长参数属于一种特殊的数组,该数组长度不固定
        // 可以使用数组的所有方法
        // 语法:数据类型...
        // 只能在方法参数中使用,表示当前方法的参数数量不固定
        // 不传递参数,表示不定长参数为空,没有参数
        int sum = sum();
        sum = sum(1);
        sum = sum(1, 3);
        sum = sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        System.out.println(sum);
        test("admin",1,3);
    }

    /**
     * 此处表示该方法参数数量不确定
     * 可能没有参数,可能只有一个参数,也可能有多个参数
     * @param params
     * @return
     */
    public static int sum(int... params) {
        int sum = 0;
        for (int i = 0; i < params.length; i++) {
            sum += params[i];
        }
        return sum;
    }

    /**
     * 当参数列表中存在可变长参数时,其必须处于最后一个参数
     * 在可变长参数后面不能有任何参数
     * 在一个方法中,最多只能出现一个可变长参数
     * @param name
     * @param params
     */
    public static void test(String name,int... params){
        System.out.println("name:"+name);
        System.out.println(Arrays.toString(params));
    }
}
